package com.itheima.home_work.test1;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.TreeSet;

public class Test {
    public static void main(String[] args) throws IOException {
        /**
         * 定义一个字符输出缓冲流BufferedWriter对象，将学员信息写入到Task1.txt文件中，
         * 每个学员信息占一行，每个字段之间用","符号隔开。例如：
         *
         * - 要求：写入的数据必须按照年龄升序排序，当年龄相同时再按照分数降序排序
         */

        // 1. 初始化一些数据：
        final ArrayList<Student> students = new ArrayList<>();
        students.add(new Student("古力娜扎",'女',19,98));
        students.add(new Student("迪丽热巴",'女',18,99));
        students.add(new Student("周杰伦",'男',20,88));
        students.add(new Student("蔡徐坤",'男',19,78));

        // 2. 借助 treeSet 排序
        final TreeSet<Student> studentsSorted = new TreeSet<>((stu1, sut2) -> {
            int result = stu1.getAge() - sut2.getAge();
            if (result == 0) {
                result = sut2.getScore() - stu1.getScore();
            }
            return result;
        });
        students.forEach(student -> studentsSorted.add(student));

        // 3. 缓冲流BufferedWriter对象，将学员信息写入到Task1.txt文件中

        // 1. 创建流
        final BufferedWriter bw = new BufferedWriter(new FileWriter("Task1.txt"));
        studentsSorted.forEach(student -> {
            // 2. 写入数据
            try {
                bw.write(student.toString());
                bw.write(System.lineSeparator());
            } catch (IOException e) {
                e.printStackTrace();
            }
        });

        // 3. 关闭流
        bw.close();


    }
}
